package com.coderman.common.starter.logparam.annotations;


import com.coderman.common.starter.logparam.enums.ErrorReturnModel;

import java.lang.annotation.*;

/**
   *
   * @author fcs
   * @date
   * @desc
   */
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RequestLogic {
   /**
    * 验证参数是否需要非空校验
    * 开启之后会对入参进行判空，
    * 如Integer,String
    * xxDto,xxList
    * 基本类型根据 @validModel注解进行数据边界检查
    * @return
    */
   boolean paramNotNull() default  false;

   /**
    * @paramNotNull 开启之后对封装类型，和基本类型
    *
    * 以及String值进行判断
    * 支持模式
    * >0
    * <0
    * >0&<10
    *
    * =100
    * =abc
    * !=1
    * !=''
    *
    * in(-1,10,11)
    * in(a,b,cd,d)
    * notin(-1,10,11)
    * notin(a,b,c,d)
    *
    * 正则表达式
    * (^[0-9]*[1-9][0-9]*$)
    * @return
    */
   String  []validModel() default  "";

   /**
    * 是否需要打印复杂对象
    * 实体，集合
    * 默认false,基本类型的入参默认打印
    * @return
    */
   boolean logInParam() default false;

   /**
    * 是否需要打印复杂对象
    * 实体，集合
    * 默认false,基本类型的入参默认打印
    * @return
    */
   boolean logOutParam() default false;

   /**
    * 是否继续方法耗时计算
    * 默认faslse
    * @return
    */
   boolean exeTime() default  false;

   /**
    * 默认返回空
    * @return
    */
   ErrorReturnModel errReturnModel() default ErrorReturnModel.NULL;
}
